// 什么是协议
// 双方或多方遵从共同的一个规范，这个规范就称为协议

// 计算机里有ftp协议，http协议，stmp协议，pop协议，tcp/ip协议

// （协议：按规矩说话，你来问，我来答，你怎么问，我怎么答）
// 什么是http协议
/**
 * 简单的通信过程：
 * 1、客户端和服务器之间没有联系
 * 2、客户端建立连接，发送请求
 * 3、服务器沿着连接，返回响应信息
 * 4、客户端收到响应，html代码，解析出图片、文字等，断开连接
 */

// HTTP请求信息格式
// 1、请求行(3部分)
      // (1)请求方法
            // ·GET/POST/PUT/DELETE/TRACE/OPTIONS/HEAD/CONNECT
            // ·GET
            // ·POST
                // 需要Content-length 对应 请求头信息
                // 需要Content-Type: application/x-www-form-urlencoded
      // (2)请求路径
            // http://xxxx
      // (3)协议版本
            // HTTP/1.1
// 2、请求头信息(注：头信息结束后，需要有一行空行，即使没有，也要有空行)
      // Host: localhost
      // Content-length: 23 (post请求 所需)
      // Content-Type: application/x-www-form-urlencoded (post请求 所需)
// 3、请求主体信息(可以没有)

// HTTP响应信息的格式
// 1、响应行(3部分)
      // (1)协议版本
      // (2)状态码
      // (3)状态文字
// 2、响应头信息(注：头信息结束后，需要有一行空行，即使没有，也要有空行)
      // key: value
      // key: value
// 3、响应主体信息


/**
 * GET/POST/PUT/DELETE/TRACE/OPTIONS/HEAD/CONNECT
 *
 * HEAD和GET基本一致，只是返回内容不同
 * HEAD不需要返回具体内容
 *
 * TRACES：是你用了代理访问new.163.com，想看看代理有没有修改你的http请求
 *
 * OPTIONS：返回支持哪些请求方法
 */

/**
 * 状态码，状态文字
 *
 * 状态码：
 * 1xx  信息，继续处理
 * 2xx  成功
 * 3xx  重定向
 * 4xx  客户端错误
 * 5xx  服务端错误
 *
 * 常用：
 * 200  成功
 * 301/2  永久/临时重定向
 * 304  未修改
 *      请求信息将If-Modified-Since和If-None-Match传到服务器，即客户端告诉浏览器，我有一张图片，最后的修改时间是xxx
 *      响应信息返回的ETag和Last-Modefied 表示有没有修改过
 * 307  重定向后保留请求数据
 * 403  禁止访问
 * 404  网页不存在
 * 500  服务器内部错误
 * 503  服务器暂时不可用
 */

